package com.flow.asyncflow.core.utils.http;

import lombok.Data;
import org.apache.http.client.CookieStore;
import org.apache.http.client.config.RequestConfig;
import org.apache.http.entity.ContentType;

import java.util.HashMap;
import java.util.List;
import java.util.Map;

/**
 * 请求参数
 */
@Data
public  class HttpClientRequest {
    /**
     * 请求地址
     */
    private String url;

    /**
     * 请求参数 key-value形式
     */
    private Map<String, Object> parameter = new HashMap<>();
    //
    /**
     * reqJson
     */
    private String reqJson;

    /**
     * get/postFrom
     */
    private HttpMethod httpMethod;
    /**
     * Cookie
     */
    private CookieStore cookieStore;

    /**
     * 编码格式
     */
    private String charset = "utf-8";
    /**
     * 请求设置
     */
    private RequestConfig requestConfig;

    /**
     * 头部信息
     */
    private Map<String, String> heads = new HashMap<>();

    /**
     * 上传文件集合
     */
    private List<FileInfo> fileInfoList;

    /**
     * 是否需要代理
     */
    private boolean proxy;
    /**
     * 代理信息
     */
    private ProxyInfo proxyInfo;

    /**
     * 文件信息
     */
    @Data
    public static class FileInfo {
        /**
         * 文件URL
         */
        private String fileUrl;
        /**
         * 文件名称
         */
        private String fileName;
        /**
         * 文件属性名
         */
        private String fileProperty;

        /**
         * 文件传输类型
         */
        private ContentType contentType = ContentType.IMAGE_JPEG;
    }

}
